<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
		<head>
			<!-- template designed by Marco Von Ballmoos -->
			<title>File Source for dos.php</title>
			<link rel="stylesheet" href="../media/stylesheet.css" />
			<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
		</head>
		<body>
						<h1>Source for file dos.php</h1>
<p>Documentation is available at <a href="../core/_geshi_dos_php.html">dos.php</a></p>
<div class="src-code">
<pre><a name="a1"></a><br />1     <span class="src-php">&lt;?php</span><a name="a2"></a><br />2     <span class="src-doc">/***********************************************************************************</span><a name="a3"></a><br />3     <span class="src-doc"> * dos.php</span><a name="a4"></a><br />4     <span class="src-doc"> * -------</span><a name="a5"></a><br />5     <span class="src-doc"> * Author: Alessandro Staltari (staltari@geocities.com)</span><a name="a6"></a><br />6     <span class="src-doc"> * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)</span><a name="a7"></a><br />7     <span class="src-doc"> * Release Version: 1.0.7.3</span><a name="a8"></a><br />8     <span class="src-doc"> * CVS Revision Version: $Revision: 1.4 $</span><a name="a9"></a><br />9     <span class="src-doc"> * Date Started: 2005/07/05</span><a name="a10"></a><br />10    <span class="src-doc"> * Last Modified: $Date: 2005/09/22 01:32:47 $</span><a name="a11"></a><br />11    <span class="src-doc"> *</span><a name="a12"></a><br />12    <span class="src-doc"> * DOS language file for GeSHi.</span><a name="a13"></a><br />13    <span class="src-doc"> *</span><a name="a14"></a><br />14    <span class="src-doc"> * CHANGES</span><a name="a15"></a><br />15    <span class="src-doc"> * -------</span><a name="a16"></a><br />16    <span class="src-doc"> * 2005/07/05 (1.0.0)</span><a name="a17"></a><br />17    <span class="src-doc"> *  -  First Release</span><a name="a18"></a><br />18    <span class="src-doc"> *</span><a name="a19"></a><br />19    <span class="src-doc"> * TODO (updated 2005/07/05)</span><a name="a20"></a><br />20    <span class="src-doc"> * -------------------------</span><a name="a21"></a><br />21    <span class="src-doc"> *</span><a name="a22"></a><br />22    <span class="src-doc"> * - Find a way to higlight %*</span><a name="a23"></a><br />23    <span class="src-doc"> * - Highlight pipes and redirection (do we really need this?)</span><a name="a24"></a><br />24    <span class="src-doc"> * - Add missing keywords.</span><a name="a25"></a><br />25    <span class="src-doc"> * - Find a good hyperlink for keywords.</span><a name="a26"></a><br />26    <span class="src-doc"> * - Improve styles.</span><a name="a27"></a><br />27    <span class="src-doc"> *</span><a name="a28"></a><br />28    <span class="src-doc"> * KNOWN ISSUES (updated 2005/07/07)</span><a name="a29"></a><br />29    <span class="src-doc"> * ---------------------------------</span><a name="a30"></a><br />30    <span class="src-doc"> *</span><a name="a31"></a><br />31    <span class="src-doc"> * - Doesn't even try to handle spaces in variables name or labels (I can't</span><a name="a32"></a><br />32    <span class="src-doc"> *   find a reliable way to establish if a sting is a name or not, in some</span><a name="a33"></a><br />33    <span class="src-doc"> *   cases it depends on the contex or enviroment status).</span><a name="a34"></a><br />34    <span class="src-doc"> * - Doesn't handle %%[letter] pseudo variable used inside FOR constructs</span><a name="a35"></a><br />35    <span class="src-doc"> *   (it should be done only into its scope: how to handle variable it?).</span><a name="a36"></a><br />36    <span class="src-doc"> * - Doesn't handle %~[something] pseudo arguments.</span><a name="a37"></a><br />37    <span class="src-doc"> * - If the same keyword is placed at the end of the line and the</span><a name="a38"></a><br />38    <span class="src-doc"> *   beginning of the next, the second occourrence is not highlighted</span><a name="a39"></a><br />39    <span class="src-doc"> *   (this should be a GeSHi bug, not related to the language definition).</span><a name="a40"></a><br />40    <span class="src-doc"> * - I can't avoid to have keyword highlighted even when they are not used</span><a name="a41"></a><br />41    <span class="src-doc"> *   as keywords but, for example, as arguments to the echo command.</span><a name="a42"></a><br />42    <span class="src-doc"> *</span><a name="a43"></a><br />43    <span class="src-doc"> ************************************************************************************</span><a name="a44"></a><br />44    <span class="src-doc"> *</span><a name="a45"></a><br />45    <span class="src-doc"> *     This file is part of GeSHi.</span><a name="a46"></a><br />46    <span class="src-doc"> *</span><a name="a47"></a><br />47    <span class="src-doc"> *   GeSHi is free software; you can redistribute it and/or modify</span><a name="a48"></a><br />48    <span class="src-doc"> *   it under the terms of the GNU General Public License as published by</span><a name="a49"></a><br />49    <span class="src-doc"> *   the Free Software Foundation; either version 2 of the License, or</span><a name="a50"></a><br />50    <span class="src-doc"> *   (at your option) any later version.</span><a name="a51"></a><br />51    <span class="src-doc"> *</span><a name="a52"></a><br />52    <span class="src-doc"> *   GeSHi is distributed in the hope that it will be useful,</span><a name="a53"></a><br />53    <span class="src-doc"> *   but WITHOUT ANY WARRANTY; without even the implied warranty of</span><a name="a54"></a><br />54    <span class="src-doc"> *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><a name="a55"></a><br />55    <span class="src-doc"> *   GNU General Public License for more details.</span><a name="a56"></a><br />56    <span class="src-doc"> *</span><a name="a57"></a><br />57    <span class="src-doc"> *   You should have received a copy of the GNU General Public License</span><a name="a58"></a><br />58    <span class="src-doc"> *   along with GeSHi; if not, write to the Free Software</span><a name="a59"></a><br />59    <span class="src-doc"> *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span><a name="a60"></a><br />60    <span class="src-doc"> *</span><a name="a61"></a><br />61    <span class="src-doc"> ************************************************************************************/</span><a name="a61"></a><br />61    <a name="a62"></a><br />62    <a name="a63"></a><br />63    <span class="src-var">$language_data</span> = <span class="src-key">array</span> <span class="src-sym">(</span><a name="a64"></a><br />64        <span class="src-str">'LANG_NAME'</span> =&gt; <span class="src-str">'DOS'</span><span class="src-sym">,</span><a name="a65"></a><br />65        <span class="src-str">'COMMENT_SINGLE'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><span class="src-num">1</span> =&gt;<span class="src-str">'REM'</span><span class="src-sym">,</span> <span class="src-num">2</span> =&gt; <span class="src-str">'@REM'</span><span class="src-sym">)</span><span class="src-sym">,</span><a name="a66"></a><br />66        <span class="src-str">'COMMENT_MULTI'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">,</span><a name="a67"></a><br />67        <span class="src-str">'CASE_KEYWORDS'</span> =&gt; <span class="src-id"><a href="../core/_geshi_php.html#defineGESHI_CAPS_NO_CHANGE">GESHI_CAPS_NO_CHANGE</a></span><span class="src-sym">,</span><a name="a68"></a><br />68        <span class="src-str">'QUOTEMARKS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">,</span><a name="a69"></a><br />69        <span class="src-str">'ESCAPE_CHAR'</span> =&gt; <span class="src-str">''</span><span class="src-sym">,</span><a name="a70"></a><br />70        <span class="src-str">'KEYWORDS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a71"></a><br />71            <span class="src-comm">/* Flow control keywords */</span><a name="a72"></a><br />72            <span class="src-num">1</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a73"></a><br />73                <span class="src-str">'IF'</span><span class="src-sym">,</span> <span class="src-str">'ELSE'</span><span class="src-sym">,</span> <span class="src-str">'GOTO'</span><span class="src-sym">,</span><a name="a74"></a><br />74                <span class="src-str">'FOR'</span><span class="src-sym">,</span> <span class="src-str">'IN'</span><span class="src-sym">,</span> <span class="src-str">'DO'</span><span class="src-sym">,</span><a name="a75"></a><br />75                <span class="src-str">'CALL'</span><span class="src-sym">,</span> <span class="src-str">'EXIT'</span><a name="a76"></a><br />76                <span class="src-sym">)</span><span class="src-sym">,</span><a name="a77"></a><br />77            <span class="src-comm">/* IF statement keywords */</span><a name="a78"></a><br />78            <span class="src-num">2</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a79"></a><br />79                <span class="src-str">'NOT'</span><span class="src-sym">,</span> <span class="src-str">'EXIST'</span><span class="src-sym">,</span> <span class="src-str">'ERRORLEVEL'</span><span class="src-sym">,</span><a name="a80"></a><br />80                <span class="src-str">'DEFINED'</span><span class="src-sym">,</span><a name="a81"></a><br />81                <span class="src-str">'EQU'</span><span class="src-sym">,</span> <span class="src-str">'NEQ'</span><span class="src-sym">,</span> <span class="src-str">'LSS'</span><span class="src-sym">,</span> <span class="src-str">'LEQ'</span><span class="src-sym">,</span> <span class="src-str">'GTR'</span><span class="src-sym">,</span> <span class="src-str">'GEQ'</span><a name="a82"></a><br />82                <span class="src-sym">)</span><span class="src-sym">,</span><a name="a83"></a><br />83            <span class="src-comm">/* Internal commands */</span><a name="a84"></a><br />84            <span class="src-num">3</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a85"></a><br />85                <span class="src-str">'SHIFT'</span><span class="src-sym">,</span><a name="a86"></a><br />86                <span class="src-str">'CD'</span><span class="src-sym">,</span> <span class="src-str">'DIR'</span><span class="src-sym">,</span> <span class="src-str">'ECHO'</span><span class="src-sym">,</span><a name="a87"></a><br />87                <span class="src-str">'SETLOCAL'</span><span class="src-sym">,</span> <span class="src-str">'ENDLOCAL'</span><span class="src-sym">,</span> <span class="src-str">'SET'</span><span class="src-sym">,</span><a name="a88"></a><br />88                <span class="src-str">'PAUSE'</span><a name="a89"></a><br />89                <span class="src-sym">)</span><span class="src-sym">,</span><a name="a90"></a><br />90            <span class="src-comm">/* Special files */</span><a name="a91"></a><br />91    <a name="a92"></a><br />92            <span class="src-num">4</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a93"></a><br />93                <span class="src-str">'PRN'</span><span class="src-sym">,</span> <span class="src-str">'NUL'</span><span class="src-sym">,</span> <span class="src-str">'LPT3'</span><span class="src-sym">,</span> <span class="src-str">'LPT2'</span><span class="src-sym">,</span> <span class="src-str">'LPT1'</span><span class="src-sym">,</span> <span class="src-str">'CON'</span><span class="src-sym">,</span><a name="a94"></a><br />94                <span class="src-str">'COM4'</span><span class="src-sym">,</span> <span class="src-str">'COM3'</span><span class="src-sym">,</span> <span class="src-str">'COM2'</span><span class="src-sym">,</span> <span class="src-str">'COM1'</span><span class="src-sym">,</span> <span class="src-str">'AUX'</span><a name="a95"></a><br />95                <span class="src-sym">)</span><a name="a96"></a><br />96            <span class="src-sym">)</span><span class="src-sym">,</span><a name="a97"></a><br />97        <span class="src-str">'SYMBOLS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a98"></a><br />98            <span class="src-str">'('</span><span class="src-sym">,</span> <span class="src-str">')'</span><a name="a99"></a><br />99            <span class="src-sym">)</span><span class="src-sym">,</span><a name="a100"></a><br />100       <span class="src-str">'CASE_SENSITIVE'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a101"></a><br />101           <span class="src-id">GESHI_COMMENTS</span> =&gt; <span class="src-id">false</span><span class="src-sym">,</span><a name="a102"></a><br />102           <span class="src-num">1</span> =&gt; <span class="src-id">false</span><a name="a103"></a><br />103           <span class="src-sym">)</span><span class="src-sym">,</span><a name="a104"></a><br />104       <span class="src-str">'STYLES'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a105"></a><br />105           <span class="src-str">'KEYWORDS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a106"></a><br />106               <span class="src-num">1</span> =&gt; <span class="src-str">'color: #00b100; font-weight: bold;'</span><span class="src-sym">,</span><a name="a107"></a><br />107               <span class="src-num">2</span> =&gt; <span class="src-str">'color: #000000; font-weight: bold;'</span><span class="src-sym">,</span><a name="a108"></a><br />108               <span class="src-num">3</span> =&gt; <span class="src-str">'color: #b1b100; font-weight: bold;'</span><span class="src-sym">,</span><a name="a109"></a><br />109               <span class="src-num">4</span> =&gt; <span class="src-str">'color: #0000ff; font-weight: bold;'</span><a name="a110"></a><br />110               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a111"></a><br />111           <span class="src-str">'COMMENTS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a112"></a><br />112               <span class="src-num">1</span> =&gt; <span class="src-str">'color: #808080; font-style: italic;'</span><span class="src-sym">,</span><a name="a113"></a><br />113               <span class="src-num">2</span> =&gt; <span class="src-str">'color: #808080; font-style: italic;'</span><a name="a114"></a><br />114               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a115"></a><br />115           <span class="src-str">'ESCAPE_CHAR'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a116"></a><br />116               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a117"></a><br />117           <span class="src-str">'BRACKETS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a118"></a><br />118               <span class="src-num">0</span> =&gt; <span class="src-str">'color: #66cc66;'</span><a name="a119"></a><br />119               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a120"></a><br />120           <span class="src-str">'STRINGS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a121"></a><br />121               <span class="src-num">0</span> =&gt; <span class="src-str">'color: #ff0000;'</span><a name="a122"></a><br />122               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a123"></a><br />123           <span class="src-str">'NUMBERS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a124"></a><br />124   <span class="src-comm">/*			0 =&gt; 'color: #cc66cc;' */</span><a name="a125"></a><br />125               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a126"></a><br />126           <span class="src-str">'METHODS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a127"></a><br />127               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a128"></a><br />128           <span class="src-str">'SYMBOLS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a129"></a><br />129               <span class="src-num">0</span> =&gt; <span class="src-str">'color: #33cc33;'</span><span class="src-sym">,</span><a name="a130"></a><br />130               <span class="src-num">1</span> =&gt; <span class="src-str">'color: #33cc33;'</span><a name="a131"></a><br />131               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a132"></a><br />132           <span class="src-str">'SCRIPT'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a133"></a><br />133               <span class="src-sym">)</span><span class="src-sym">,</span><a name="a134"></a><br />134           <span class="src-str">'REGEXPS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a135"></a><br />135               <span class="src-num">0</span> =&gt; <span class="src-str">'color: #b100b1; font-weight: bold;'</span><span class="src-sym">,</span><a name="a136"></a><br />136               <span class="src-num">1</span> =&gt; <span class="src-str">'color: #448844;'</span><span class="src-sym">,</span><a name="a137"></a><br />137               <span class="src-num">2</span> =&gt; <span class="src-str">'color: #448888;'</span><a name="a138"></a><br />138               <span class="src-sym">)</span><a name="a139"></a><br />139           <span class="src-sym">)</span><span class="src-sym">,</span><a name="a140"></a><br />140       <span class="src-str">'OOLANG'</span> =&gt; <span class="src-id">false</span><span class="src-sym">,</span><a name="a141"></a><br />141       <span class="src-str">'OBJECT_SPLITTERS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a142"></a><br />142           <span class="src-sym">)</span><span class="src-sym">,</span><a name="a143"></a><br />143       <span class="src-str">'REGEXPS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a144"></a><br />144       <span class="src-comm">/* Label */</span><a name="a145"></a><br />145           <span class="src-num">0</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a146"></a><br />146   <span class="src-comm">/*		GESHI_SEARCH =&gt; '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((?&lt;!\n)[^\s\n]*)',*/</span><a name="a147"></a><br />147           <span class="src-id">GESHI_SEARCH</span> =&gt; <span class="src-str">'((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((?&lt;!\n)[^\n]*)'</span><span class="src-sym">,</span><a name="a148"></a><br />148           <span class="src-id">GESHI_REPLACE</span> =&gt; <span class="src-str">'\\2'</span><span class="src-sym">,</span><a name="a149"></a><br />149           <span class="src-id">GESHI_MODIFIERS</span> =&gt; <span class="src-str">'si'</span><span class="src-sym">,</span><a name="a150"></a><br />150           <span class="src-id">GESHI_BEFORE</span> =&gt; <span class="src-str">'\\1'</span><span class="src-sym">,</span><a name="a151"></a><br />151           <span class="src-id">GESHI_AFTER</span> =&gt; <span class="src-str">''</span><a name="a152"></a><br />152           <span class="src-sym">)</span><span class="src-sym">,</span><a name="a153"></a><br />153       <span class="src-comm">/* Variable assignement */</span><a name="a154"></a><br />154           <span class="src-num">1</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a155"></a><br />155   <span class="src-comm">/*		GESHI_SEARCH =&gt; '(SET[\s]+(?si:/A[\s]+|/P[\s]+|))([^=\s\n]+)([\s]*=)',*/</span><a name="a156"></a><br />156           <span class="src-id">GESHI_SEARCH</span> =&gt; <span class="src-str">'(SET[\s]+(?si:/A[\s]+|/P[\s]+|))([^=\n]+)([\s]*=)'</span><span class="src-sym">,</span><a name="a157"></a><br />157           <span class="src-id">GESHI_REPLACE</span> =&gt; <span class="src-str">'\\2'</span><span class="src-sym">,</span><a name="a158"></a><br />158           <span class="src-id">GESHI_MODIFIERS</span> =&gt; <span class="src-str">'si'</span><span class="src-sym">,</span><a name="a159"></a><br />159           <span class="src-id">GESHI_BEFORE</span> =&gt; <span class="src-str">'\\1'</span><span class="src-sym">,</span><a name="a160"></a><br />160           <span class="src-id">GESHI_AFTER</span> =&gt; <span class="src-str">'\\3'</span><a name="a161"></a><br />161           <span class="src-sym">)</span><span class="src-sym">,</span><a name="a162"></a><br />162       <span class="src-comm">/* Arguments or variable evaluation */</span><a name="a163"></a><br />163           <span class="src-num">2</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a164"></a><br />164   <span class="src-comm">/*		GESHI_SEARCH =&gt; '(%)([\d*]|[^%\s]*(?=%))((?&lt;!%\d)%|)',*/</span><a name="a165"></a><br />165           <span class="src-id">GESHI_SEARCH</span> =&gt; <span class="src-str">'(%)([\d*]|[^%]*(?=%))((?&lt;!%\d)%|)'</span><span class="src-sym">,</span><a name="a166"></a><br />166           <span class="src-id">GESHI_REPLACE</span> =&gt; <span class="src-str">'\\2'</span><span class="src-sym">,</span><a name="a167"></a><br />167           <span class="src-id">GESHI_MODIFIERS</span> =&gt; <span class="src-str">'si'</span><span class="src-sym">,</span><a name="a168"></a><br />168           <span class="src-id">GESHI_BEFORE</span> =&gt; <span class="src-str">'\\1'</span><span class="src-sym">,</span><a name="a169"></a><br />169           <span class="src-id">GESHI_AFTER</span> =&gt; <span class="src-str">'\\3'</span><a name="a170"></a><br />170           <span class="src-sym">)</span><a name="a171"></a><br />171           <span class="src-sym">)</span><span class="src-sym">,</span><a name="a172"></a><br />172       <span class="src-str">'STRICT_MODE_APPLIES'</span> =&gt; <span class="src-id">GESHI_NEVER</span><span class="src-sym">,</span><a name="a173"></a><br />173       <span class="src-str">'SCRIPT_DELIMITERS'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a174"></a><br />174           <span class="src-sym">)</span><span class="src-sym">,</span><a name="a175"></a><br />175       <span class="src-str">'HIGHLIGHT_STRICT_BLOCK'</span> =&gt; <span class="src-key">array</span><span class="src-sym">(</span><a name="a176"></a><br />176           <span class="src-sym">)</span><a name="a177"></a><br />177   <span class="src-sym">)</span>;<a name="a178"></a><br />178   <a name="a179"></a><br />179   <span class="src-php">?&gt;</span></pre>
</div>
	<p class="notes" id="credit">
		Documentation generated on Thu, 22 Sep 2005 13:47:52 +1200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.2.3</a>
	</p>
	</body>
</html>